java基础10题

您所在的位置:网站首页 java classloader说法正确的是 java基础10题

java基础10题

2023-06-02 16:34| 来源: 网络整理| 查看: 265

1.有关线程的叙述正确的是() A.可以获得对任何对象的互斥锁定。 B.通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定。 C.线程通过使用synchronized关键字可获得对象的互斥锁定。 D.线程的创建只能通过继承Thread类来实现。 2.以下选项中,合法的赋值语句是() A.a>1; B.i++; C.a= a+1=5; D.y = int(i); 3.要导入java/awt/event下面的所有类,叙述正确的是?() A.import java.awt.和import java.awt.event.都可以 B.只能是import java.awt. C.只能是import java.awt.event. D.import java.awt.*和import java.awt.event.*都不可以 4.下列说法正确的是()? A.我们直接调用Thread对象的run方法会报异常,所以我们应该使用start方法来开启一个线程 B.一个进程是一个独立的运行环境,可以被看做一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的C.单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源 D.synchronized可以解决可见性问题,volatile可以解决原子性问题 ThreadLocal用于创建线程的本地变量,该变量是线程之间不共享的 5.下面有关java classloader说法正确的是()? A.ClassLoader就是用来动态加载class文件到内存当中用的 B.JVM在判定两个class是否相同时,只用判断类名相同即可,和类加载器无关 C.ClassLoader使用的是双亲委托模型来搜索类的 D.Java默认提供的三个ClassLoader是Boostrap ClassLoader,Extension ClassLoader,App ClassLoader E.以上都不正确 6.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为 A.隐藏 B.覆盖 C.重载 D.Java不支持此特性 7.下面有关JDK中的包和他们的基本功能,描述错误的是? A.java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面 B.java.io:  包含提供多种输出输入功能的类 C.java.lang: 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET D.java.util:  包含一些实用性的类 8.下面输出结果为

public void test() { int a = 10; System.out.println(a++ + a--); }

9.下面哪个不属于HttpServletResponse接口完成的功能? A.设置HTTP头标 B.设置cookie C.读取路径信息 D.输出返回数据 10.下面这条语句一共创建了多少个对象:String s=“welcome”+“to”+360; (1)C (2)B y为short、byte、char时, y = (int)i; //发生向下转型,不可赋值 (3)C 导包只可以导到当前层,不可以再导入包里面的包中的类 (4)正确答案: B D 🤣D中ThreadLocal 用于创建线程的本地变量是指TheadLocalMap变量,这个是线程Thread类内部的成员变量,所以TheadLocalMap是线程独享。 看错成了是ThreadLocal 本身这个变量是线程不共享的(其实是共享的) (5)正确答案: A C D JDK中提供了三个ClassLoader,根据层级从高到低为: Bootstrap ClassLoader,主要加载JVM自身工作需要的类。 Extension ClassLoader,主要加载%JAVA_HOME%\lib\ext目录下的库类。 Application ClassLoader,主要加载Classpath指定的库类,一般情况下这是程序中的默认类加载器,也是ClassLoader.getSystemClassLoader() 的返回值。(这里的Classpath默认指的是环境变量中配置的Classpath,但是可以在执行Java命令的时候使用-cp 参数来修改当前程序使用的Classpath) JVM加载类的实现方式,我们称为 双亲委托模型: 如果一个类加载器收到了类加载的请求,他首先不会自己去尝试加载这个类,而是把这个请求委托给自己的父加载器,每一层的类加载器都是如此,因此所有的类加载请求最终都应该传送到顶层的Bootstrap ClassLoader中,只有当父加载器反馈自己无法完成加载请求时,子加载器才会尝试自己加载。 双亲委托模型的重要用途是为了解决类载入过程中的安全性问题。 假设有一个开发者自己编写了一个名为Java.lang.Object的类,想借此欺骗JVM。现在他要使用自定义ClassLoader来加载自己编写的java.lang.Object类。然而幸运的是,双亲委托模型不会让他成功。因为JVM会优先在Bootstrap ClassLoader的路径下找到java.lang.Object类,并载入它 (6)C 重写(Override)是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

重载(Overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。 (7)这个题选c java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面 java.lang: 提供java编成语言的程序设计的基础类 java.io:  包含提供多种输出输入功能的类, java.net:  包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET, java.applet: 包含java小应用程序的类 java.util:  包含一些实用性的类 (8)21 a++ a是10 执行完a++那么就是11 故a–是11 也就是10+11 (9)C HttpServletResponse 在Servlet中,当服务器响应客户端的一个请求时,就要用到HttpServletResponse接口。设置响应的类型可以使用setContentType()方法。发送字符数据,可以使用getWriter()返回一个对象。下表是接口HttpServletResponse的常用方法。 接口HttpServletResponse的常用方法 方 法 说 明 addCookie(Cookie cookie) 将指定的Cookie加入到当前的响应中 addHeader(String name,String value) 将指定的名字和值加入到响应的头信息中 containsHeader(String name) 返回一个布尔值,判断响应的头部是否被设置 encodeURL(String url) 编码指定的URL sendError(int sc) 使用指定状态码发送一个错误到客户端 sendRedirect(String location) 发送一个临时的响应到客户端 setDateHeader(String name,long date) 将给出的名字和日期设置响应的头部 setHeader(String name,String value) 将给出的名字和值设置响应的头部 setStatus(int sc) 给当前响应设置状态码 setContentType(String ContentType) (10)1

答案错了,正确答案应该是0或1,没有判断常量池是否已经存在。 编译器优化成了String s = "welcometo360"; 编译器优化部分请自行javap 可以通过下面这段代码验证常量池jdk1.7/1.8运行下面这段代码 public static void main(String[] args) { char[] dd = {'d','d'}; String s = new String(dd); System.out.println(s.intern()==s); String s1 =new String("ff"); System.out.println(s1.intern() == s1); String k = "ff"+"to"+360; System.out.println(k.intern()==k); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3